[% setvar title The Perl 6 Summary of the week ending 20031005 %]
<div id="archive-notice">
    <h3>This file is part of the Perl 6 Archive</h3>
    <p>To see what is currently happening visit <a href="http://www.perl6.org/">http://www.perl6.org/</a></p>
</div>
<div class='pod'>
<a name='The Perl 6 Summary of the week ending 20031005'></a><h1>The Perl 6 Summary of the week ending 20031005</h1>
<p>Hello, good evening, and welcome from the teeming metropolis that is
Newcastle/Gateshead, home of The Angel of the North, the Winky Eye
Bridge, the ham and pease pudding stotty and freezing your
extremities off on a Saturday night down the Bigg Market.</p>
<p>This isn't (yet) a permanent move, but I'm here, my laptop is here,
and there's a summary to write so let's get on with it shall we?</p>
<p>As per always, we'll start with the internals list.</p>
<a name='Disassembler issues'></a><h2>Disassembler issues</h2>
<p>Marcus Thiesen had some problems getting the disassembler working (it
was throwing segfaults, never a popular behaviour). Leo T&ouml;tsch
(who else?) fixed it.</p>
<p><a href='http://groups.google.com/groups?threadm=1064775217.770.36.camel@mobilHal.thiesenweb' target='_blank'>groups.google.com</a></p>
<a name='Pondering proper parameter passing'></a><h2>Pondering proper parameter passing</h2>
<p>The argument passing discussion continued. Leo suggested some changes
to PDD03 for Dan to bear in mind when he rewrote it. (Something that
was only going to take a few hours last week. Dan? I don't wish to
nag you understand.)</p>
<p><a href='http://groups.google.com/groups?threadm=200309291041.h8TAfTm23886@thu8.leo.home' target='_blank'>groups.google.com</a></p>
<a name='Multimethod dispatch function installation issues'></a><h2>Multimethod dispatch function installation issues</h2>
<p>Dan's in the process of writing the the Multi Method Dispatch (MMD)
subsystem (at least the parts needed for operator overloading) and is
scratching his head over what to do when a Multimethod is defined that
references some other class that hasn't yet been loaded. He asked for
the list's assistance in choosing one of two alternative
approaches. The list refused to choose (no surprise there), and
suggested a third option.</p>
<p><a href='http://groups.google.com/groups?threadm=Pine.LNX.4.58.0309290951440.28229@sprite.sidhe.org' target='_blank'>groups.google.com</a></p>
<a name='Library Loading an initialization sequence'></a><h2>Library Loading an initialization sequence</h2>
<p>Dan is also working on what happens when PMCs are loaded -- how they
are initialized etc -- so he posted a long message documenting his
current thinking in this area.</p>
<p><a href='http://groups.google.com/groups?threadm=Pine.LNX.4.58.0309291332480.28229@sprite.sidhe.org' target='_blank'>groups.google.com</a></p>
<a name='MANIFEST failings, and how to overcome them'></a><h2>MANIFEST failings, and how to overcome them</h2>
<p>There's been a few language checkins recently that have broken the
MANIFEST, Robert Spier asked for a little help writing a MANIFEST
checker which could be used as part of the CVS checkin which would
make CVS refused to check anything in unless the MANIFEST was also up
to date. Garrett Goebel came up with the goods and now, anyone
attempting to check something in that invalidates the MANIFEST will
be made to fix it before proceeding. Which is nice.</p>
<p><a href='http://groups.google.com/groups?threadm=m3ad8ns55h.wl_rspier@pobox.com' target='_blank'>groups.google.com</a></p>
<a name='Testing Parrot IO (PIO)'></a><h2>Testing Parrot IO (PIO)</h2>
<p>Last week, Michael Scott submitted a bunch of tests for the Parrot IO
subsystem. This week, J&uuml;rgen B&ouml;mmels responded and he and
Michael thrashed out some of the issues arising.</p>
<p><a href='http://groups.google.com/groups?threadm=m265ja75m3.fsf@helium.physik.uni-kl.de' target='_blank'>groups.google.com</a></p>
<a name='Waiting for the great renaming'></a><h2>Waiting for the great renaming</h2>
<p>Leo T&ouml;tsch and others are working on getting things ready for
when everything gets moved around and IMCC starts getting built as
the one true parrot.</p>
<p><a href='http://groups.google.com/groups?threadm=rt-24080-65508.15.3246368698724@rt.perl.org' target='_blank'>groups.google.com</a></p>
<a name='LVALUE casts considered scary'></a><h2>LVALUE casts considered scary</h2>
<p>Andy Dougherty found a problem building Parrot with Sun's Workshop
compiler, which doesn't like having casts as lvalues. Leo proposed a
(mistyped fix) and then ended up implementing a macro,
<code>LVALUE_CAST(type, value)</code> to do the job reliably. So, if you find
yourself wanting to use a cast as an lvalue when working on Parrot,
use <code>LVALUE_CAST</code> instead.</p>
<p><a href='http://groups.google.com/groups?threadm=Pine.SOL.4.53.0310011234570.26853@maxwell.phys.lafayette.edu' target='_blank'>groups.google.com</a></p>
<a name='Parrot on AIX'></a><h2>Parrot on AIX</h2>
<p>Adam Thomason has taken on the task of getting Parrot to build on an
IBM RS/6000 running AIX 4.3 with VisualAge C 6. He submitted a patch
which fixes most things, but there's still one failing test
(something to do with negative zero). His big patch was applied, and
there's now a little debate about whether -0 should be a valid
value. Later in the week, Adam tracked down what was causing the -0s.</p>
<p><a href='http://groups.google.com/groups?threadm=rt-24088-65535.16.1624113421836@rt.perl.org' target='_blank'>groups.google.com</a></p>
<a name='Parrot gets Perl regular expressions'></a><h2>Parrot gets Perl regular expressions</h2>
<p>Actually, Parrot gets <b><i>pcre.imc</i></b>: Leo T&ouml;tsch has wrapped
libpcre, the Perl Compatible Regular Expression library that almost
every language out there (except Perl of course) uses for its
regexes. Leo thinks it might be useful for bootstrapping Perl6
rules. Dan doesn't want to have PCRE in core, or for it to be
required for any part of building parrot, so the wrapper will be
available in our current 'catch all' directory for such things,
<b><i>runtime/</i></b>.</p>
<p><a href='http://groups.google.com/groups?threadm=3F7C2680.60406@toetsch.at' target='_blank'>groups.google.com</a></p>
<a name='Parrot on Itanium'></a><h2>Parrot on Itanium</h2>
<p>Aldo Calpini is busy bringing parrot up on an Itanium box. It's not
quite there yet, but it's getting there. Thanks Aldo.</p>
<p><a href='http://groups.google.com/groups?threadm=47272606906.20031002161010@alos.it' target='_blank'>groups.google.com</a></p>
<a name='The beginnings of an extension mechanism'></a><h2>The beginnings of an extension mechanism</h2>
<p>Dan's checked in the first part of the extension code for parrot,
which lives in <b><i>extend.c</i></b> and which will be documented in
<b><i>docs/extend.pod</i></b>. For now, Dan's post is the only extant documentation.</p>
<p><a href='http://groups.google.com/groups?threadm=Pine.LNX.4.58.0310031317410.15751@sprite.sidhe.org' target='_blank'>groups.google.com</a></p>
<a name='Safe mode for Parrot -- Call For Volunteers'></a><h2>Safe mode for Parrot -- Call For Volunteers</h2>
<p>Dan reckons it's time to start on getting a safe mode for Parrot,
which will (eventually) need a lot doing. However, the initial bit is
thought to be relatively simple. Dan asked for a a volunteer with
enough appropriately shaped tuits to start in on that task. Gregor N
Purdy delivered something in slightly less than a day. Leo checked
things over and offered a few suggestions, patches got altered and
discussion continued.</p>
<p><a href='http://groups.google.com/groups?threadm=Pine.LNX.4.58.0310031426490.15751@sprite.sidhe.org' target='_blank'>groups.google.com</a></p>
<a name='Meanwhile on perl6-language'></a><h1>Meanwhile on perl6-language</h1>
<a name='The Block Returns'></a><h2>The Block Returns</h2>
<p>Luke Palmer decided to make people's heads hurt with the following
snippet of code:</p>
<pre>    sub foo () {
        return my $self = {
            print &quot;Block&quot;
            return $self;
        }
    }

    print $block = foo;
    print &quot;Main&quot;;
    $block();
    print &quot;End&quot;;</pre>
<p>The problem has to do with where the block returns to, depending on
how you interpret the apocalypse's descriptions of block behaviour
(the option that I found most consistent with the Apocalypse was the
one that leads to an infinite loop, but I think there's another
option). Austin Hastings jacked up the insanity level by proposing a
version of <code>~=</code> (<code>~=</code> is the Perl 6 equivalent of Perl 5's <code>.=</code>)
that works with blocks -- The idea being that you can do</p>
<pre>    $block = { print &quot;First&quot;; }
    ...
    $block ~= { print &quot;Second&quot;; }</pre>
<p>and end up with a block that's equivalent to</p>
<pre>    { print &quot;First&quot; ; print &quot;Second&quot;; }</pre>
<p>Luke pointed out that you can already do something very like this
with <code>wrap</code>, but that wasn't good enough for Austin. Judging by the
responses of Luke and Dan, it looks like this particular extension
won't be part of core Perl 6.</p>
<p><a href='http://groups.google.com/groups?threadm=20031002075926.GA20503@babylonia.flatirons.org' target='_blank'>groups.google.com</a></p>
<a name='Acknowledgements, Announcements, Apologies'></a><h1>Acknowledgements, Announcements, Apologies</h1>
<p>Hmm... it looks like Tuesday might be the new Monday as far as
getting this summary out to the list is concerned. (At least on those
occasions when I spend Sunday night in Newcastle).</p>
<p><a href='http://www.bofh.org.uk:8080/' target='_blank'>www.bofh.org.uk</a> actually got some new content this
week. Maybe it's not dead after all.</p>
<p>If you found this summary valuable, you might like to consider one or
more of these suggestions:</p>
<ul>
<li><a name='Get involved. There's always room for more people to work on both Parrot and Perl 6 (admittedly implementing Perl 6 is a little further out, but if you want to earn huge amounts of kudos, you could have a crack at implementing Perl 6 rules in Parrot assembly before Damian gets Perl6::Rules released). Start at dev.perl.org/perl6/ and www.parrotcode.org/ for links to the mailing lists and other useful stuff.'></a>Get involved. There's always room for more people to work on both
Parrot and Perl 6 (admittedly implementing Perl 6 is a little further
out, but if you want to earn <i>huge</i> amounts of kudos, you could have
a crack at implementing Perl 6 rules in Parrot assembly before Damian
gets Perl6::Rules released). Start at <a href='http://dev.perl.org/perl6/' target='_blank'>dev.perl.org</a>
and <a href='http://www.parrotcode.org/' target='_blank'>www.parrotcode.org</a> for links to the mailing lists and
other useful stuff.</li>
<li><a name='Support Larry and co financially by donating to the Perl Foundation at donate.perl-foundation.org/.'></a>Support Larry and co financially by donating to the Perl Foundation
at <a href='http://donate.perl-foundation.org/.' target='_blank'>donate.perl-foundation.org</a></li>
<li><a name='Tell me how much you enjoy/hate/can't live without these summaries. Suggest improvements, point out grammatical howlers, hire me or just press gifts upon me at p<a href='mailto:6summarizer@bofh.org.uk'>6summarizer@bofh.org.uk</a>.'></a>Tell me how much you enjoy/hate/can't live without these
summaries. Suggest improvements, point out grammatical howlers, hire
me or just press gifts upon me at <i><a href='http://search.cpan.org/perldoc?<a href='mailto:p6summarizer@bofh.org.uk'>p6summarizer@bofh.org.uk</a>'>p<a href='mailto:6summarizer@bofh.org.uk'>6summarizer@bofh.org.uk</a></a></i>.</li>
</ul>
</div>
